package com.yan.design.java8.k3;

import com.yan.design.pojo.Po;
import sun.applet.Main;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Stream;

/**
 * 3 stream流
 *
 * @author shengren.yan
 * @create 2022-08-17
 */
public class stream1 {

    public static void main(String[] args) {
        // 1. 创建流
        new ArrayList<>().stream();           // 串行流
        new ArrayList<>().parallelStream();   // 并行流

        // 2 .求和
        Stream<Integer> integerStream = Stream.of(10, 20, 30, 66);
        BigDecimal sum = new ArrayList<Po>()
                .stream().map(Po::getBigDecimal)
                .reduce(BigDecimal.ZERO, BigDecimal::add);

        // 3.匹配 match
        // anyMatch -- 判断条件里，任何一个元素成功，返回true
        // allMatch -- 判断条件里，所有的都成功，返回true
        // noneMatch -- 判断条件里，所有都不是，返回true
        boolean b = new ArrayList<Po>().stream().noneMatch(x -> x.getAge() > 10);

        // findFirst -- 返回第一个元素
        // findAny -- 随机返回第一个元素
        // count -- 返回总个数
        // max   -- 返回最大值
        // mix   -- 返回最小值

    }
}
